/**
 * @author jurnlee
 *
 * 封装方法插件，对象级别$.fn.extend(),如此可以使用$("").plugin()形式调用
 * 
 * 该版本可实现：代码相对独立，链式操作，插件可配置;有可操作的方法，插件生命周期可控
 * 该版本是根据司徒正美《JavaScript框架设计》的代码加入面向对象知识而来。
 */


;
(function($) {
	$.fn.newTB= function(method){
		//如果第一个参数是方法就调用
		if(methods[method]){
			//如果存在就调用
			return methods[method].apply(this,Array.prototype.slice.call(arguments,1));
		}else if(typeof method ==="object"||!method){
			//如果传进来的参数是{...}就认为是初始化操作
			return methods.init.apply(this,arguments);
		}else{
			$.error('Method '+ method +' dose not exist on jQuery.newTB');
		}
		
	};
	//公共方法
	var methods = {
		init:function(_options){
			return this.each(function(){
				var $this = $(this);
				var args = $.extend({},$.fn.newTB.defaults, _options);
			
				console.log(args.text);
				var $this = $(this);
				$this.append("通过插件v0.3插入");
			});//end init return
		},
		morePublicMethod:function(){
			
		}
	};//end methods
	
	//私有方法
	/*function private_methods= {
		demo_private_method:function(){};
	};*/
	
	//默认方法
	$.fn.newTB.defaults = {
		rowNum: 2,
		colNum: 3,
		text:"hello"
	}
})(jQuery,undefined);
